var logListStore;

function initLogList() {
	var dateBtn = new Ext.Action({
				text : '日志查询',
				tooltip : '系统日志查询',
				handler : function() {
				}
			});
	var typeBtn = new Ext.Action({
				text : '日志清理',
				iconCls : 'del-log',
				tooltip : '清理系统日志',
				disabled : true,
				handler : function() {
					Ext.MessageBox.confirm('提示', '确定删除日志信息？', handleDelLog);
				}
			});

	logListStore = new Ext.data.JsonStore({
				id : 'logListStore',
				idProperty : 'id',
				remoteSort : false,
				totalProperty : 'totalCount',
				root : 'logList',
				fields : ['id', 'title', 'time', 'logid', 'ip', 'memo'],

				// load using script tags for cross domain, if the data in on
				// the same domain as
				// this page, an HttpProxy would be better
				proxy : new Ext.data.ScriptTagProxy({
							url : context + '/system/log.do?method=list'
						})
			});

	var sm = new Ext.grid.CheckboxSelectionModel();

	var logListGrid = new Ext.grid.GridPanel({
				id : 'logListGrid',
				title : '系统日志',
				closable : true,
				store : logListStore,
				columns : [sm, {
							header : '用户',
							width : 100,
							sortable : true,
							dataIndex : 'title'
						}, {
							header : '登录ID',
							width : 100,
							sortable : true,
							dataIndex : 'logid'
						}, {
							header : '登录时间',
							width : 100,
							sortable : true,
							dataIndex : 'time'
						}, {
							header : '访问IP',
							width : 100,
							sortable : true,
							dataIndex : 'ip'
						}, {
							header : '日志内容',
							width : 200,
							sortable : true,
							dataIndex : 'memo'
						}],
				sm : sm,
				stripeRows : true,
				autoExpandlog : 'name',
				// width : Ext.get(areaid).getComputedWidth(),
				border : false,
				viewConfig : {
					forceFit : true
				},
				// config options for stateful behavior
				stateful : true,
				stateId : 'grid',
				loadMask : {
					msg : "数据加载中，请稍等..."
				},
				tbar : [typeBtn],
				bbar : new Ext.PagingToolbar({
							pageSize : pageSize,// 每页显示的记录值
							store : logListStore,
							displayInfo : true,
							displayMsg : '总记录数 {0} - {1} of {2}',
							emptyMsg : "没有记录"
						})
			});

	logListGrid.on('render', function(grid) {
		var store = grid.getStore();

		var view = grid.getView();

		logListGrid.tip = new Ext.ToolTip({
					target : view.mainBody,
					delegate : '.x-grid3-row',
					trackMouse : true,
					renderTo : document.body,
					listeners : {
						beforeshow : function updateTipBody(tip) {
							var rowIndex = view
									.findRowIndex(tip.triggerElement);
							tip.body.dom.innerHTML = store.getAt(rowIndex).data.memo;
						}
					}
				});
	});

	logListGrid.on('click', function(e) {
				if (logListGrid.getSelectionModel().hasSelection()) {
					typeBtn.enable();
				} else {
					typeBtn.disable();
				}
			});

	logListStore.load({
				params : {
					start : 0,
					limit : pageSize
				}
			});

	return logListGrid;
};

function reloadLogListStore() {
	logListStore.reload({
				start : 0,
				limit : pageSize
			});
}

function handleDelLog(btn) {
	if (btn == 'yes') {
		var ids = "";
		var selectedNodes = Ext.getCmp('logListGrid').getSelectionModel()
				.getSelections();
		for (var i = 0; i < selectedNodes.length; i++) {
			if (i < selectedNodes.length - 1) {
				ids += selectedNodes[i].data.id + ",";
			} else {
				ids += selectedNodes[i].data.id;
			}
		}

		Ext.Ajax.request({
					url : context + "/system/log.do?method=delete",
					method : 'POST',
					async : false,
					params : {
						ids : ids
					},
					success : function(response, options) {
						var o = Ext.util.JSON.decode(response.responseText);
						if (!o.success) {
							Ext.Msg.alert('提示', '删除日志信息失败！');
						} else {
							reloadLogListStore();
						}
					}
				})
	}
};